<!doctype html>
<html lang="zh-CN">

<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- 上述3个meta标签*必须*放在最前面，任何其他内容都*必须*跟随其后！ -->
    <title>Bootstrap 101 Template</title>

    <!-- Bootstrap -->
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css"
        integrity="sha384-HSMxcRTRxnN+Bdg0JdbxYKrThecOKuH5zCYotlSAcp1+c8xmyTe9GYg1l9a69psu" crossorigin="anonymous">

    <!-- HTML5 shim 和 Respond.js 是为了让 IE8 支持 HTML5 元素和媒体查询（media queries）功能 -->
    <!-- 警告：通过 file:// 协议（就是直接将 html 页面拖拽到浏览器中）访问页面时 Respond.js 不起作用 -->
    <!--[if lt IE 9]>
      <script src="https://fastly.jsdelivr.net/npm/html5shiv@3.7.3/dist/html5shiv.min.js"></script>
      <script src="https://fastly.jsdelivr.net/npm/respond.js@1.4.2/dest/respond.min.js"></script>
    <![endif]-->
</head>

<body>

    <div id="app">

        <div class="container">

            <table v-if="goods.length" class="table table-hover">
                <thead>
                    <tr>
                        <th>
                            <input type="checkbox" :checked="allChecked" @click="all" name="" id="">    全选
                        </th>
                        <th>商品</th>
                        <th>价格</th>
                        <th>数量</th>
                        <th>操作</th>

                    </tr>
                </thead>
                <tbody>
                    <tr v-for="(item,index) in goods">
                        <td>
                            <input type="checkbox" :checked="item.iscreat" @click="myChange(index)" name="" id="">
                        </td>
                        <td>
                            {{item.title}}
                        </td>
                        <td>
                            {{item.price}}
                        </td>
                        <td>
                            {{item.num}}
                        </td>
                        <td>
                            <button @click="del(index)">删除</button>
                        </td>
                    </tr>
                </tbody>
                <tfoot>
                    <tr>
                        <td colspan="5">
                            总价：{{allPrice}}
                        </td>

                    </tr>
                </tfoot>
            </table>
            <div v-else>
                购物车空空如也
            </div>
        </div>
    </div>

    <!-- jQuery (Bootstrap 的所有 JavaScript 插件都依赖 jQuery，所以必须放在前边) -->
    <script src="https://fastly.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"
        integrity="sha384-nvAa0+6Qg9clwYCGGPpDQLVpLNn0fRaROjHqs13t4Ggj3Ez50XnGQqc/r8MhnRDZ"
        crossorigin="anonymous"></script>
    <!-- 加载 Bootstrap 的所有 JavaScript 插件。你也可以根据需要只加载单个插件。 -->
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"
        integrity="sha384-aJ21OjlMXNL5UyIl/XNwTMqvzeRMZH2w8c5cRVpzpU8Y5bApTppSuUkhZXN0VxHd"
        crossorigin="anonymous"></script>
    <script src="./vue.min.js"></script>
</body>
<script>
    var vm = new Vue({
        el: "#app",
        data: {
            allChecked:false,
            goods: [
                {
                    title: "鞋",
                    num: 1,
                    price: 20,
                    iscreat: false
                },
                {
                    title: "手机",
                    num: 1,
                    price: 100,
                    iscreat: true
                },
                {
                    title: "帽子",
                    num: 1,
                    price: 10,
                    iscreat: false
                }
            ]
        },
        computed:{
            allPrice:function(){
                var all = 0;
                for (const item of this.goods) {
                    if(item.iscreat){
                        all +=  item.price*item.num;
                    }
                }
                return all;
            }
        },
        methods: {
            // 点击其中一个商品
            myChange(index){
                this.goods[index].iscreat = !this.goods[index].iscreat;
            },
            // 全选
            all(){
                this.allChecked = !this.allChecked;
                for (const item of this.goods) {
                    item.iscreat = this.allChecked;
                }
            },
            // 删除
            del(index){
                var goods = this.goods;
                goods.splice(index,1);
                this.goods = goods;
            }

        }
    })

</script>

</html>